home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 July: Mac OS SDK / Dev.CD Jul 00 SDK2.toast / Development Kits / Cross Platform / QuickTime 4.1.2 Windows SDK / CIncludes / Collections.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-04-12  |  17.8 KB  |  549 lines  |  [TEXT/R*ch]

  1. /*
  2.      File:        Collections.h
  3.  
  4.      Contains:    Collection Manager Interfaces
  5.  
  6.      Version:    Technology:    System 7.x
  7.                  Release:    QuickTime 4.1
  8.  
  9.      Copyright:    (c) 1989-1999 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __COLLECTIONS__
  18. #define __COLLECTIONS__
  19.  
  20. #ifndef __MACTYPES__
  21.     #include <MacTypes.h>
  22. #endif
  23.  
  24. #ifndef __MIXEDMODE__
  25.     #include <MixedMode.h>
  26. #endif
  27.  
  28.  
  29.  
  30.  
  31. #if PRAGMA_ONCE
  32. #pragma once
  33. #endif
  34.  
  35. #ifdef __cplusplus
  36. extern "C" {
  37. #endif
  38.  
  39. #if PRAGMA_IMPORT
  40. #pragma import on
  41. #endif
  42.  
  43. #if PRAGMA_STRUCT_ALIGN
  44.     #pragma options align=mac68k
  45. #elif PRAGMA_STRUCT_PACKPUSH
  46.     #pragma pack(push, 2)
  47. #elif PRAGMA_STRUCT_PACK
  48.     #pragma pack(2)
  49. #endif
  50.  
  51. /*************/
  52. /* Constants */
  53. /*************/
  54. /* Convenience constants for functions which optionally return values */
  55. enum {
  56.     kCollectionDontWantTag        = 0L,
  57.     kCollectionDontWantId        = 0L,
  58.     kCollectionDontWantSize        = 0L,
  59.     kCollectionDontWantAttributes = 0L,
  60.     kCollectionDontWantIndex    = 0L,
  61.     kCollectionDontWantData        = 0L
  62. };
  63.  
  64.  
  65. /* attributes bits */
  66. enum {
  67.     kCollectionNoAttributes        = 0x00000000,                    /* no attributes bits set */
  68.     kCollectionAllAttributes    = (long)0xFFFFFFFF,                /* all attributes bits set */
  69.     kCollectionUserAttributes    = 0x0000FFFF,                    /* user attributes bits */
  70.     kCollectionDefaultAttributes = 0x40000000                    /* default attributes - unlocked, persistent */
  71. };
  72.  
  73.  
  74. /* 
  75.     Attribute bits 0 through 15 (entire low word) are reserved for use by the application.
  76.     Attribute bits 16 through 31 (entire high word) are reserved for use by the Collection Manager.
  77.     Only bits 31 (kCollectionLockBit) and 30 (kCollectionPersistenceBit) currently have meaning.
  78. */
  79. enum {
  80.     kCollectionUser0Bit            = 0,
  81.     kCollectionUser1Bit            = 1,
  82.     kCollectionUser2Bit            = 2,
  83.     kCollectionUser3Bit            = 3,
  84.     kCollectionUser4Bit            = 4,
  85.     kCollectionUser5Bit            = 5,
  86.     kCollectionUser6Bit            = 6,
  87.     kCollectionUser7Bit            = 7,
  88.     kCollectionUser8Bit            = 8,
  89.     kCollectionUser9Bit            = 9,
  90.     kCollectionUser10Bit        = 10,
  91.     kCollectionUser11Bit        = 11,
  92.     kCollectionUser12Bit        = 12,
  93.     kCollectionUser13Bit        = 13,
  94.     kCollectionUser14Bit        = 14,
  95.     kCollectionUser15Bit        = 15,
  96.     kCollectionReserved0Bit        = 16,
  97.     kCollectionReserved1Bit        = 17,
  98.     kCollectionReserved2Bit        = 18,
  99.     kCollectionReserved3Bit        = 19,
  100.     kCollectionReserved4Bit        = 20,
  101.     kCollectionReserved5Bit        = 21,
  102.     kCollectionReserved6Bit        = 22,
  103.     kCollectionReserved7Bit        = 23,
  104.     kCollectionReserved8Bit        = 24,
  105.     kCollectionReserved9Bit        = 25,
  106.     kCollectionReserved10Bit    = 26,
  107.     kCollectionReserved11Bit    = 27,
  108.     kCollectionReserved12Bit    = 28,
  109.     kCollectionReserved13Bit    = 29,
  110.     kCollectionPersistenceBit    = 30,
  111.     kCollectionLockBit            = 31
  112. };
  113.  
  114.  
  115. /* attribute masks */
  116. enum {
  117.     kCollectionUser0Mask        = 1L << kCollectionUser0Bit,
  118.     kCollectionUser1Mask        = 1L << kCollectionUser1Bit,
  119.     kCollectionUser2Mask        = 1L << kCollectionUser2Bit,
  120.     kCollectionUser3Mask        = 1L << kCollectionUser3Bit,
  121.     kCollectionUser4Mask        = 1L << kCollectionUser4Bit,
  122.     kCollectionUser5Mask        = 1L << kCollectionUser5Bit,
  123.     kCollectionUser6Mask        = 1L << kCollectionUser6Bit,
  124.     kCollectionUser7Mask        = 1L << kCollectionUser7Bit,
  125.     kCollectionUser8Mask        = 1L << kCollectionUser8Bit,
  126.     kCollectionUser9Mask        = 1L << kCollectionUser9Bit,
  127.     kCollectionUser10Mask        = 1L << kCollectionUser10Bit,
  128.     kCollectionUser11Mask        = 1L << kCollectionUser11Bit,
  129.     kCollectionUser12Mask        = 1L << kCollectionUser12Bit,
  130.     kCollectionUser13Mask        = 1L << kCollectionUser13Bit,
  131.     kCollectionUser14Mask        = 1L << kCollectionUser14Bit,
  132.     kCollectionUser15Mask        = 1L << kCollectionUser15Bit,
  133.     kCollectionReserved0Mask    = 1L << kCollectionReserved0Bit,
  134.     kCollectionReserved1Mask    = 1L << kCollectionReserved1Bit,
  135.     kCollectionReserved2Mask    = 1L << kCollectionReserved2Bit,
  136.     kCollectionReserved3Mask    = 1L << kCollectionReserved3Bit,
  137.     kCollectionReserved4Mask    = 1L << kCollectionReserved4Bit,
  138.     kCollectionReserved5Mask    = 1L << kCollectionReserved5Bit,
  139.     kCollectionReserved6Mask    = 1L << kCollectionReserved6Bit,
  140.     kCollectionReserved7Mask    = 1L << kCollectionReserved7Bit,
  141.     kCollectionReserved8Mask    = 1L << kCollectionReserved8Bit,
  142.     kCollectionReserved9Mask    = 1L << kCollectionReserved9Bit,
  143.     kCollectionReserved10Mask    = 1L << kCollectionReserved10Bit,
  144.     kCollectionReserved11Mask    = 1L << kCollectionReserved11Bit,
  145.     kCollectionReserved12Mask    = 1L << kCollectionReserved12Bit,
  146.     kCollectionReserved13Mask    = 1L << kCollectionReserved13Bit,
  147.     kCollectionPersistenceMask    = 1L << kCollectionPersistenceBit,
  148.     kCollectionLockMask            = 1L << kCollectionLockBit
  149. };
  150.  
  151.  
  152. /***********/
  153. /* Types   */
  154. /***********/
  155. /* abstract data type for a collection */
  156. typedef struct OpaqueCollection*         Collection;
  157. /* collection member 4 byte tag */
  158. typedef FourCharCode                     CollectionTag;
  159. typedef CALLBACK_API( OSErr , CollectionFlattenProcPtr )(SInt32 size, void *data, void *refCon);
  160. typedef CALLBACK_API( OSErr , CollectionExceptionProcPtr )(Collection c, OSErr status);
  161. typedef STACK_UPP_TYPE(CollectionFlattenProcPtr)                 CollectionFlattenUPP;
  162. typedef STACK_UPP_TYPE(CollectionExceptionProcPtr)                 CollectionExceptionUPP;
  163. #if OPAQUE_UPP_TYPES
  164.     EXTERN_API(CollectionFlattenUPP)
  165.     NewCollectionFlattenUPP           (CollectionFlattenProcPtr userRoutine);
  166.  
  167.     EXTERN_API(CollectionExceptionUPP)
  168.     NewCollectionExceptionUPP       (CollectionExceptionProcPtr userRoutine);
  169.  
  170.     EXTERN_API(void)
  171.     DisposeCollectionFlattenUPP       (CollectionFlattenUPP    userUPP);
  172.  
  173.     EXTERN_API(void)
  174.     DisposeCollectionExceptionUPP    (CollectionExceptionUPP userUPP);
  175.  
  176.     EXTERN_API(OSErr)
  177.     InvokeCollectionFlattenUPP       (SInt32                    size,
  178.                                     void *                    data,
  179.                                     void *                    refCon,
  180.                                     CollectionFlattenUPP    userUPP);
  181.  
  182.     EXTERN_API(OSErr)
  183.     InvokeCollectionExceptionUPP    (Collection                c,
  184.                                     OSErr                    status,
  185.                                     CollectionExceptionUPP    userUPP);
  186.  
  187. #else
  188.     enum { uppCollectionFlattenProcInfo = 0x00000FE0 };             /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
  189.     enum { uppCollectionExceptionProcInfo = 0x000002E0 };             /* pascal 2_bytes Func(4_bytes, 2_bytes) */
  190.     #define NewCollectionFlattenUPP(userRoutine)                     (CollectionFlattenUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppCollectionFlattenProcInfo, GetCurrentArchitecture())
  191.     #define NewCollectionExceptionUPP(userRoutine)                     (CollectionExceptionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppCollectionExceptionProcInfo, GetCurrentArchitecture())
  192.     #define DisposeCollectionFlattenUPP(userUPP)                     DisposeRoutineDescriptor(userUPP)
  193.     #define DisposeCollectionExceptionUPP(userUPP)                     DisposeRoutineDescriptor(userUPP)
  194.     #define InvokeCollectionFlattenUPP(size, data, refCon, userUPP)  (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppCollectionFlattenProcInfo, (size), (data), (refCon))
  195.     #define InvokeCollectionExceptionUPP(c, status, userUPP)         (OSErr)CALL_TWO_PARAMETER_UPP((userUPP), uppCollectionExceptionProcInfo, (c), (status))
  196. #endif
  197. /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
  198. #define NewCollectionFlattenProc(userRoutine)                     NewCollectionFlattenUPP(userRoutine)
  199. #define NewCollectionExceptionProc(userRoutine)                 NewCollectionExceptionUPP(userRoutine)
  200. #define CallCollectionFlattenProc(userRoutine, size, data, refCon) InvokeCollectionFlattenUPP(size, data, refCon, userRoutine)
  201. #define CallCollectionExceptionProc(userRoutine, c, status)        InvokeCollectionExceptionUPP(c, status, userRoutine)
  202. /*********************************************/
  203. /************* Public interfaces *************/
  204. /*********************************************/
  205. EXTERN_API( Collection )
  206. NewCollection                    (void)                                                        TWOWORDINLINE(0x7000, 0xABF6);
  207.  
  208.  
  209. EXTERN_API( void )
  210. DisposeCollection                (Collection             c)                                    TWOWORDINLINE(0x7001, 0xABF6);
  211.  
  212.  
  213. EXTERN_API( Collection )
  214. CloneCollection                    (Collection             c)                                    TWOWORDINLINE(0x7002, 0xABF6);
  215.  
  216.  
  217. EXTERN_API( SInt32 )
  218. CountCollectionOwners            (Collection             c)                                    TWOWORDINLINE(0x7003, 0xABF6);
  219.  
  220.  
  221. EXTERN_API( Collection )
  222. CopyCollection                    (Collection             srcCollection,
  223.                                  Collection             dstCollection)                        TWOWORDINLINE(0x7004, 0xABF6);
  224.  
  225.  
  226. EXTERN_API( SInt32 )
  227. GetCollectionDefaultAttributes    (Collection             c)                                    TWOWORDINLINE(0x7005, 0xABF6);
  228.  
  229.  
  230. EXTERN_API( void )
  231. SetCollectionDefaultAttributes    (Collection             c,
  232.                                  SInt32                 whichAttributes,
  233.                                  SInt32                 newAttributes)                        TWOWORDINLINE(0x7006, 0xABF6);
  234.  
  235.  
  236. EXTERN_API( SInt32 )
  237. CountCollectionItems            (Collection             c)                                    TWOWORDINLINE(0x7007, 0xABF6);
  238.  
  239.  
  240. EXTERN_API( OSErr )
  241. AddCollectionItem                (Collection             c,
  242.                                  CollectionTag             tag,
  243.                                  SInt32                 id,
  244.                                  SInt32                 itemSize,
  245.                                  const void *            itemData)                            TWOWORDINLINE(0x7008, 0xABF6);
  246.  
  247.  
  248. EXTERN_API( OSErr )
  249. GetCollectionItem                (Collection             c,
  250.                                  CollectionTag             tag,
  251.                                  SInt32                 id,
  252.                                  SInt32 *                itemSize,
  253.                                  void *                    itemData)                            TWOWORDINLINE(0x7009, 0xABF6);
  254.  
  255.  
  256. EXTERN_API( OSErr )
  257. RemoveCollectionItem            (Collection             c,
  258.                                  CollectionTag             tag,
  259.                                  SInt32                 id)                                    TWOWORDINLINE(0x700A, 0xABF6);
  260.  
  261.  
  262. EXTERN_API( OSErr )
  263. SetCollectionItemInfo            (Collection             c,
  264.                                  CollectionTag             tag,
  265.                                  SInt32                 id,
  266.                                  SInt32                 whichAttributes,
  267.                                  SInt32                 newAttributes)                        TWOWORDINLINE(0x700B, 0xABF6);
  268.  
  269.  
  270. EXTERN_API( OSErr )
  271. GetCollectionItemInfo            (Collection             c,
  272.                                  CollectionTag             tag,
  273.                                  SInt32                 id,
  274.                                  SInt32 *                index,
  275.                                  SInt32 *                itemSize,
  276.                                  SInt32 *                attributes)                            TWOWORDINLINE(0x700C, 0xABF6);
  277.  
  278.  
  279. EXTERN_API( OSErr )
  280. ReplaceIndexedCollectionItem    (Collection             c,
  281.                                  SInt32                 index,
  282.                                  SInt32                 itemSize,
  283.                                  const void *            itemData)                            TWOWORDINLINE(0x700D, 0xABF6);
  284.  
  285.  
  286. EXTERN_API( OSErr )
  287. GetIndexedCollectionItem        (Collection             c,
  288.                                  SInt32                 index,
  289.                                  SInt32 *                itemSize,
  290.                                  void *                    itemData)                            TWOWORDINLINE(0x700E, 0xABF6);
  291.  
  292.  
  293. EXTERN_API( OSErr )
  294. RemoveIndexedCollectionItem        (Collection             c,
  295.                                  SInt32                 index)                                TWOWORDINLINE(0x700F, 0xABF6);
  296.  
  297.  
  298. EXTERN_API( OSErr )
  299. SetIndexedCollectionItemInfo    (Collection             c,
  300.                                  SInt32                 index,
  301.                                  SInt32                 whichAttributes,
  302.                                  SInt32                 newAttributes)                        TWOWORDINLINE(0x7010, 0xABF6);
  303.  
  304.  
  305. EXTERN_API( OSErr )
  306. GetIndexedCollectionItemInfo    (Collection             c,
  307.                                  SInt32                 index,
  308.                                  CollectionTag *        tag,
  309.                                  SInt32 *                id,
  310.                                  SInt32 *                itemSize,
  311.                                  SInt32 *                attributes)                            TWOWORDINLINE(0x7011, 0xABF6);
  312.  
  313.  
  314. EXTERN_API( Boolean )
  315. CollectionTagExists                (Collection             c,
  316.                                  CollectionTag             tag)                                TWOWORDINLINE(0x7012, 0xABF6);
  317.  
  318.  
  319. EXTERN_API( SInt32 )
  320. CountCollectionTags                (Collection             c)                                    TWOWORDINLINE(0x7013, 0xABF6);
  321.  
  322.  
  323. EXTERN_API( OSErr )
  324. GetIndexedCollectionTag            (Collection             c,
  325.                                  SInt32                 tagIndex,
  326.                                  CollectionTag *        tag)                                TWOWORDINLINE(0x7014, 0xABF6);
  327.  
  328.  
  329. EXTERN_API( SInt32 )
  330. CountTaggedCollectionItems        (Collection             c,
  331.                                  CollectionTag             tag)                                TWOWORDINLINE(0x7015, 0xABF6);
  332.  
  333.  
  334. EXTERN_API( OSErr )
  335. GetTaggedCollectionItem            (Collection             c,
  336.                                  CollectionTag             tag,
  337.                                  SInt32                 whichItem,
  338.                                  SInt32 *                itemSize,
  339.                                  void *                    itemData)                            TWOWORDINLINE(0x7016, 0xABF6);
  340.  
  341.  
  342. EXTERN_API( OSErr )
  343. GetTaggedCollectionItemInfo        (Collection             c,
  344.                                  CollectionTag             tag,
  345.                                  SInt32                 whichItem,
  346.                                  SInt32 *                id,
  347.                                  SInt32 *                index,
  348.                                  SInt32 *                itemSize,
  349.                                  SInt32 *                attributes)                            TWOWORDINLINE(0x7017, 0xABF6);
  350.  
  351.  
  352. EXTERN_API( void )
  353. PurgeCollection                    (Collection             c,
  354.                                  SInt32                 whichAttributes,
  355.                                  SInt32                 matchingAttributes)                    TWOWORDINLINE(0x7018, 0xABF6);
  356.  
  357.  
  358. EXTERN_API( void )
  359. PurgeCollectionTag                (Collection             c,
  360.                                  CollectionTag             tag)                                TWOWORDINLINE(0x7019, 0xABF6);
  361.  
  362.  
  363. EXTERN_API( void )
  364. EmptyCollection                    (Collection             c)                                    TWOWORDINLINE(0x701A, 0xABF6);
  365.  
  366. EXTERN_API( OSErr )
  367. FlattenCollection                (Collection             c,
  368.                                  CollectionFlattenUPP     flattenProc,
  369.                                  void *                    refCon)                                TWOWORDINLINE(0x701B, 0xABF6);
  370.  
  371.  
  372. EXTERN_API( OSErr )
  373. FlattenPartialCollection        (Collection             c,
  374.                                  CollectionFlattenUPP     flattenProc,
  375.                                  void *                    refCon,
  376.                                  SInt32                 whichAttributes,
  377.                                  SInt32                 matchingAttributes)                    TWOWORDINLINE(0x701C, 0xABF6);
  378.  
  379.  
  380. EXTERN_API( OSErr )
  381. UnflattenCollection                (Collection             c,
  382.                                  CollectionFlattenUPP     flattenProc,
  383.                                  void *                    refCon)                                TWOWORDINLINE(0x701D, 0xABF6);
  384.  
  385.  
  386. EXTERN_API( CollectionExceptionUPP )
  387. GetCollectionExceptionProc        (Collection             c)                                    TWOWORDINLINE(0x701E, 0xABF6);
  388.  
  389.  
  390. EXTERN_API( void )
  391. SetCollectionExceptionProc        (Collection             c,
  392.                                  CollectionExceptionUPP  exceptionProc)                        TWOWORDINLINE(0x701F, 0xABF6);
  393.  
  394.  
  395. EXTERN_API( Collection )
  396. GetNewCollection                (SInt16                 collectionID)                        TWOWORDINLINE(0x7020, 0xABF6);
  397.  
  398.  
  399. /**********************************************************************/
  400. /************** Utility routines for handle-based access **************/
  401. /**********************************************************************/
  402. EXTERN_API( OSErr )
  403. AddCollectionItemHdl            (Collection             aCollection,
  404.                                  CollectionTag             tag,
  405.                                  SInt32                 id,
  406.                                  Handle                 itemData)                            TWOWORDINLINE(0x7021, 0xABF6);
  407.  
  408.  
  409. EXTERN_API( OSErr )
  410. GetCollectionItemHdl            (Collection             aCollection,
  411.                                  CollectionTag             tag,
  412.                                  SInt32                 id,
  413.                                  Handle                 itemData)                            TWOWORDINLINE(0x7022, 0xABF6);
  414.  
  415.  
  416. EXTERN_API( OSErr )
  417. ReplaceIndexedCollectionItemHdl    (Collection             aCollection,
  418.                                  SInt32                 index,
  419.                                  Handle                 itemData)                            TWOWORDINLINE(0x7023, 0xABF6);
  420.  
  421.  
  422. EXTERN_API( OSErr )
  423. GetIndexedCollectionItemHdl        (Collection             aCollection,
  424.                                  SInt32                 index,
  425.                                  Handle                 itemData)                            TWOWORDINLINE(0x7024, 0xABF6);
  426.  
  427.  
  428. EXTERN_API( OSErr )
  429. FlattenCollectionToHdl            (Collection             aCollection,
  430.                                  Handle                 flattened)                            TWOWORDINLINE(0x7025, 0xABF6);
  431.  
  432.  
  433. EXTERN_API( OSErr )
  434. UnflattenCollectionFromHdl        (Collection             aCollection,
  435.                                  Handle                 flattened)                            TWOWORDINLINE(0x7026, 0xABF6);
  436.  
  437.  
  438. #if OLDROUTINENAMES
  439. enum {
  440.     dontWantTag                    = kCollectionDontWantTag,
  441.     dontWantId                    = kCollectionDontWantId,
  442.     dontWantSize                = kCollectionDontWantSize,
  443.     dontWantAttributes            = kCollectionDontWantAttributes,
  444.     dontWantIndex                = kCollectionDontWantIndex,
  445.     dontWantData                = kCollectionDontWantData
  446. };
  447.  
  448. enum {
  449.     noCollectionAttributes        = kCollectionNoAttributes,
  450.     allCollectionAttributes        = kCollectionAllAttributes,
  451.     userCollectionAttributes    = kCollectionUserAttributes,
  452.     defaultCollectionAttributes    = kCollectionDefaultAttributes
  453. };
  454.  
  455. enum {
  456.     collectionUser0Bit            = kCollectionUser0Bit,
  457.     collectionUser1Bit            = kCollectionUser1Bit,
  458.     collectionUser2Bit            = kCollectionUser2Bit,
  459.     collectionUser3Bit            = kCollectionUser3Bit,
  460.     collectionUser4Bit            = kCollectionUser4Bit,
  461.     collectionUser5Bit            = kCollectionUser5Bit,
  462.     collectionUser6Bit            = kCollectionUser6Bit,
  463.     collectionUser7Bit            = kCollectionUser7Bit,
  464.     collectionUser8Bit            = kCollectionUser8Bit,
  465.     collectionUser9Bit            = kCollectionUser9Bit,
  466.     collectionUser10Bit            = kCollectionUser10Bit,
  467.     collectionUser11Bit            = kCollectionUser11Bit,
  468.     collectionUser12Bit            = kCollectionUser12Bit,
  469.     collectionUser13Bit            = kCollectionUser13Bit,
  470.     collectionUser14Bit            = kCollectionUser14Bit,
  471.     collectionUser15Bit            = kCollectionUser15Bit,
  472.     collectionReserved0Bit        = kCollectionReserved0Bit,
  473.     collectionReserved1Bit        = kCollectionReserved1Bit,
  474.     collectionReserved2Bit        = kCollectionReserved2Bit,
  475.     collectionReserved3Bit        = kCollectionReserved3Bit,
  476.     collectionReserved4Bit        = kCollectionReserved4Bit,
  477.     collectionReserved5Bit        = kCollectionReserved5Bit,
  478.     collectionReserved6Bit        = kCollectionReserved6Bit,
  479.     collectionReserved7Bit        = kCollectionReserved7Bit,
  480.     collectionReserved8Bit        = kCollectionReserved8Bit,
  481.     collectionReserved9Bit        = kCollectionReserved9Bit,
  482.     collectionReserved10Bit        = kCollectionReserved10Bit,
  483.     collectionReserved11Bit        = kCollectionReserved11Bit,
  484.     collectionReserved12Bit        = kCollectionReserved12Bit,
  485.     collectionReserved13Bit        = kCollectionReserved13Bit,
  486.     collectionPersistenceBit    = kCollectionPersistenceBit,
  487.     collectionLockBit            = kCollectionLockBit
  488. };
  489.  
  490. enum {
  491.     collectionUser0Mask            = kCollectionUser0Mask,
  492.     collectionUser1Mask            = kCollectionUser1Mask,
  493.     collectionUser2Mask            = kCollectionUser2Mask,
  494.     collectionUser3Mask            = kCollectionUser3Mask,
  495.     collectionUser4Mask            = kCollectionUser4Mask,
  496.     collectionUser5Mask            = kCollectionUser5Mask,
  497.     collectionUser6Mask            = kCollectionUser6Mask,
  498.     collectionUser7Mask            = kCollectionUser7Mask,
  499.     collectionUser8Mask            = kCollectionUser8Mask,
  500.     collectionUser9Mask            = kCollectionUser9Mask,
  501.     collectionUser10Mask        = kCollectionUser10Mask,
  502.     collectionUser11Mask        = kCollectionUser11Mask,
  503.     collectionUser12Mask        = kCollectionUser12Mask,
  504.     collectionUser13Mask        = kCollectionUser13Mask,
  505.     collectionUser14Mask        = kCollectionUser14Mask,
  506.     collectionUser15Mask        = kCollectionUser15Mask,
  507.     collectionReserved0Mask        = kCollectionReserved0Mask,
  508.     collectionReserved1Mask        = kCollectionReserved1Mask,
  509.     collectionReserved2Mask        = kCollectionReserved2Mask,
  510.     collectionReserved3Mask        = kCollectionReserved3Mask,
  511.     collectionReserved4Mask        = kCollectionReserved4Mask,
  512.     collectionReserved5Mask        = kCollectionReserved5Mask,
  513.     collectionReserved6Mask        = kCollectionReserved6Mask,
  514.     collectionReserved7Mask        = kCollectionReserved7Mask,
  515.     collectionReserved8Mask        = kCollectionReserved8Mask,
  516.     collectionReserved9Mask        = kCollectionReserved9Mask,
  517.     collectionReserved10Mask    = kCollectionReserved10Mask,
  518.     collectionReserved11Mask    = kCollectionReserved11Mask,
  519.     collectionReserved12Mask    = kCollectionReserved12Mask,
  520.     collectionReserved13Mask    = kCollectionReserved13Mask,
  521.     collectionPersistenceMask    = kCollectionPersistenceMask,
  522.     collectionLockMask            = kCollectionLockMask
  523. };
  524.  
  525. #endif  /* OLDROUTINENAMES */
  526.  
  527.  
  528.  
  529. #if PRAGMA_STRUCT_ALIGN
  530.     #pragma options align=reset
  531. #elif PRAGMA_STRUCT_PACKPUSH
  532.     #pragma pack(pop)
  533. #elif PRAGMA_STRUCT_PACK
  534.     #pragma pack()
  535. #endif
  536.  
  537. #ifdef PRAGMA_IMPORT_OFF
  538. #pragma import off
  539. #elif PRAGMA_IMPORT
  540. #pragma import reset
  541. #endif
  542.  
  543. #ifdef __cplusplus
  544. }
  545. #endif
  546.  
  547. #endif /* __COLLECTIONS__ */
  548.  
  549.